#include "btform.h"
#include "ui_btform.h"

BtForm::BtForm(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::BtForm)
{
    ui->setupUi(this);

    ui->lineBox->hide();

    //设置line1的动画效果
    line1Animal = new QPropertyAnimation(ui->line1,"geometry",this); //new创建动画对象 参数:对那个控件使用,使用方式,父元素
    line1Animal->setDuration(1500); //动画持续时间1.5s完成
    line1Animal->setKeyValueAt(0,QRect(0,15,2,0));//关键帧 起点
    line1Animal->setKeyValueAt(0.5,QRect(0,0,2,15));//中间时(顶端)
    line1Animal->setKeyValueAt(1,QRect(0,15,2,0));//又回到起点
    line1Animal->setLoopCount(-1); //执行次数(不设置默认1次)  -1:一直播放
    line1Animal->start();//开始执行

    //设置line2的动画效果
    line2Animal = new QPropertyAnimation(ui->line2,"geometry",this);
    line2Animal->setDuration(1600);
    line2Animal->setKeyValueAt(0,QRect(7,15,2,0));
    line2Animal->setKeyValueAt(0.5,QRect(7,0,2,15));
    line2Animal->setKeyValueAt(1,QRect(7,15,2,0));
    line2Animal->setLoopCount(-1);
    line2Animal->start();

    //设置line3的动画效果
    line3Animal = new QPropertyAnimation(ui->line3,"geometry",this);
    line3Animal->setDuration(1700);
    line3Animal->setKeyValueAt(0,QRect(14,15,2,0));
    line3Animal->setKeyValueAt(0.5,QRect(14,0,2,15));
    line3Animal->setKeyValueAt(1,QRect(14,15,2,0));
    line3Animal->setLoopCount(-1);
    line3Animal->start();

    //设置line4的动画效果
    line4Animal = new QPropertyAnimation(ui->line4,"geometry",this);
    line4Animal->setDuration(1800);
    line4Animal->setKeyValueAt(0,QRect(21,15,2,0));
    line4Animal->setKeyValueAt(0.5,QRect(21,0,2,15));
    line4Animal->setKeyValueAt(1,QRect(21,15,2,0));
    line4Animal->setLoopCount(-1);
    line4Animal->start();
}

BtForm::~BtForm()
{
    delete ui;
}


void BtForm::setIconAndText(const QString &btIcon, const QString &btText,int pageId)
{
    //设置按钮图标
    ui->btIcon->setPixmap(QPixmap(btIcon));
    //设置按钮文本
    ui->btText->setText(btText);

    //将按钮和QQMusic的page页面关联
    this->pageId=pageId;
}

int BtForm::getPageId()const
{
    return pageId;
}

void BtForm::clearBackground()
{ 
    //btStyle的背景颜色设置为最初的
    ui->btStyle->setStyleSheet("#btStyle:hover{background-color:#d8d8d8;}");
}

void BtForm::showAnimal(bool isShow)
{
    if(isShow==true)
    {
        ui->lineBox->show();
    }
    else
    {
        ui->lineBox->hide();
    }
}


void BtForm::mousePressEvent(QMouseEvent *event)
{
    (void)event;
    //1.按下钮按后 更改背景颜色 （更改样式表 代码形式）
    ui->btStyle->setStyleSheet("#btStyle{background-color:rgb(30,206,154);}");


    //2.按下钮按后 更改bodyright右侧的page页面
    // 问题？1.什么时候切换 2.谁来切换 3.按钮和page页面的对应关系

    emit btClick(pageId); //发射自定义信号
}
